(* data map with all possible types that can be stored with an entity *)
type data_map = (string, bytes) map
(* The optional address the record resolves to *)
(* The owner of the record allowed to make changes *)
(* A map of any additional data clients wish to store with the domain *)
(* Validator contract reference used for validating names of new subrecords *)
(* Key to the expiry map containing the validity of this record *)
(* ... more fields outside of this interoperability spec *)
(* The owner of the record allowed to make changes *)
(* A map of any additional data clients wish to store with the record *)
(* ... more fields outside of this interoperability spec *)
(* Map of UTF-8 encoded names to forward records *)
records: (bytes, record) big_map;
(* Map of addresses to reverse records *)
reverse_records: (address, reverse_record) big_map;
(* Map containing expiry for every second-level domain *)
expiry_map: (bytes, timestamp) big_map;
(* ... more fields outside of this interoperability spec *)
(* Inner storage of the contract *)
(* ... more fields outside of this interoperability spec *)