{ "name": "example-interface", "unions": { "person": { "discriminator": "discriminator", "interfaces": ["person"], "types": [ { "type": "guest" }, { "type": "user" } ] } }, "interfaces": { "database_record": { "fields": [ { "name": "id", "type": "string" } ] }, "person": { "fields": [ { "name": "email", "type": "string", "required": false }, { "name": "name", "type": "string", "required": false } ] } }, "models": { "user": { "interfaces": ["database_record"], "fields": [ { "name": "id", "type": "string" }, { "name": "email", "type": "string", "required": false }, { "name": "name", "type": "string", "required": false }, { "name": "registration_date", "type": "date-time-iso8601" } ] }, "guest": { "fields": [ { "name": "session_id", "type": "string" }, { "name": "email", "type": "string", "required": false }, { "name": "name", "type": "string", "required": false } ] } } }