[{"name":"BasicAddress","desc":"Core postal address fields. Base type for all address structures.","properties":[{"n":"city","r":true,"t":"string"},{"n":"countryCode","r":true,"t":"string","info":"ISO 3166-1 alpha-2"},{"n":"line1","r":true,"t":"string"},{"n":"line2","t":"string"},{"n":"line3","t":"string"},{"n":"organization","t":"string"},{"n":"postalCode","r":true,"t":"string"},{"n":"state","t":"string"}]},{"name":"Address","desc":"Extended address with contact details and labeling. Used for entity mailing/billing addresses.","properties":[{"n":"email","t":"string"},{"n":"label","t":"string","info":"e.g. 'Headquarters', 'Billing', 'Shipping'"},{"n":"name","t":"string","info":"Addressee name"},{"n":"notes","t":"string"},{"n":"phone","t":"string"}],"ext":"BasicAddress","usedBy":["Business Entity.Address","Franchise Group.PostalAddress","Franchise Group.BillingAddress","Vendor.Address","Customer.Address"]},{"name":"AddressBook","desc":"Ordered collection of addresses with primary flag and identifiers. Used when an entity maintains multiple addresses.","properties":[{"n":"addressNo","t":"integer","info":"Sequence number within the book"},{"n":"identifiers","r":true,"t":"array","info":"Array of Identifier value objects"},{"n":"isDeleted","r":true,"t":"boolean","info":"Soft-delete flag"},{"n":"isPrimary","r":true,"t":"boolean"}],"ext":"Address"},{"name":"Phone","desc":"A phone number entry with label and primary flag.","properties":[{"n":"isPrimary","r":true,"t":"boolean"},{"n":"label","t":"string","info":"e.g. 'Mobile', 'Work', 'Fax'"},{"n":"phoneNumber","r":true,"t":"string"}]},{"name":"Email","desc":"An email address entry with label and primary flag.","properties":[{"n":"email","r":true,"t":"string"},{"n":"isPrimary","r":true,"t":"boolean"},{"n":"label","t":"string","info":"e.g. 'Work', 'Personal'"}]},{"name":"PersonName","desc":"Structured person name with title and middle name support.","properties":[{"n":"firstName","r":true,"t":"string"},{"n":"lastName","r":true,"t":"string"},{"n":"middleName","t":"string"},{"n":"title","t":"string","info":"e.g. 'Mr', 'Ms', 'Dr'"}]},{"name":"Contact","desc":"A full contact record combining name, phones, emails, address, and custom data. Used for vendor contacts, customer contacts, etc.","properties":[{"n":"address","t":"valueType","info":"Address value type"},{"n":"contactNo","t":"integer","info":"Sequence number"},{"n":"customData","t":"schema","info":"Extensible key-value data"},{"n":"emails","r":true,"t":"array","info":"Array of Email value objects"},{"n":"franchiseGroups","r":true,"t":"array","info":"Associated Franchise Group codes"},{"n":"isActive","r":true,"t":"boolean"},{"n":"isDeleted","r":true,"t":"boolean","info":"Soft-delete flag"},{"n":"isPrimary","r":true,"t":"boolean"},{"n":"name","t":"valueType","info":"PersonName value type"},{"n":"phones","r":true,"t":"array","info":"Array of Phone value objects"}]},{"name":"EntityDetail","desc":"Denormalized snapshot of a referenced entity's identity fields (id + code + name + alias + sequence). Embedded inline on the parent document to avoid a separate query for basic display information. Extends Identifiable (adds UUID id). Used for Location and Dictionary/Lookup entity references.","properties":[{"n":"alias","t":"string"},{"n":"code","r":true,"t":"string"},{"n":"name","r":true,"t":"string"},{"n":"sequence","t":"integer"}]},{"name":"Identifier","desc":"A labeled identifier value (e.g. tax ID, loyalty number, external system reference).","properties":[{"n":"isPrimary","r":true,"t":"boolean"},{"n":"label","t":"string"},{"n":"name","r":true,"t":"string","info":"Identifier type label"},{"n":"value","r":true,"t":"string"}]},{"name":"Payment","desc":"A payment tender line within a transaction — captures method, amount, and change.","properties":[{"n":"accountNo","t":"string"},{"n":"accountType","t":"string"},{"n":"amount","r":true,"t":"decimal"},{"n":"changeAmount","t":"decimal"},{"n":"code","r":true,"t":"string","info":"Payment method code"},{"n":"name","r":true,"t":"string","info":"Payment method display name"},{"n":"paymentCardType","t":"string","info":"e.g. Visa, Mastercard, AMEX"},{"n":"paymentDate","t":"datetime"},{"n":"sequence","t":"integer"}]},{"name":"Money","desc":"Amount with currency code. Used wherever a monetary value needs explicit currency context.","properties":[{"n":"amount","r":true,"t":"decimal"},{"n":"currencyCode","r":true,"t":"string","info":"ISO 4217 currency code"}]},{"name":"ConfigurationRef","desc":"Embedded reference from a configurable entity to its configuration record in the CONFIG subsystem. The `config` field carries a denormalized snapshot of the Config entity (id, code, name) so runtime services can resolve configuration without an extra round-trip; `templateCode` optionally names the Config Template the config was derived from, which lets consumers validate expected shape and discover available keys. This value type is the canonical shape of every configurable entity's link to CONFIG — do not declare ad-hoc configId strings on entities. Consumers that need richer linkage (environment scope, version pinning, override chain) should add fields here rather than on each entity.","properties":[{"n":"config","r":true,"t":"entityDetail","re":"Config","info":"Denormalized snapshot of the referenced Config record (id, code, name). Follows the standard entityDetail pattern so display never requires a lookup. The Config itself holds Actor, Environment, and resolved values."},{"n":"templateCode","r":false,"t":"string","info":"Code of the Config Template the referenced Config was derived from. Optional, but recommended so consumers can validate against the expected schema and discover which keys are available."}],"usedBy":["Location","Organization","Company","Connector","Sales Channel"]}]