A schema tells you how to store data. An ontology tells you how to argue about it. Conflating the two is how you end up with yet another JSON standard and no shared grammar.
When engineers see the word "ontology" they often hear "schema." This is not their fault — in most software contexts the two are almost synonymous, and the distinction is more philosophical than operational.
In conflict software the distinction matters. A schema describes how to store data; it says nothing about what the data means. An ontology describes how to argue about the world; it commits you to specific distinctions, specific roles, specific relations. If you skip the ontology and jump straight to the schema, you end up with yet another JSON standard — and no shared grammar.
The Agentic Conflict Ontology is not a JSON spec. It happens to serialize cleanly, but its core is a set of ontological commitments: that Position is not the same thing as Interest; that Claim is not the same thing as Commitment; that an Event is something that can be provenance-bound to a source, not an abstraction. These are philosophical decisions before they are engineering ones. If the philosophy is wrong, the schema underneath does not save you.
This also explains why importing the ACO into an existing system is not a drop-in migration. You can map the fields easily; you cannot map the distinctions if the original data model never recorded them. A CRM entry that labelled every statement as a "claim" loses the commitment information the moment it is ingested, because the distinction was never captured in the first place. Migration is retroactively impossible.
The practical implication: when you extend the ACO, extend it as an ontology first. Ask whether you are adding a distinction (new) or a field (schema-level). Every time someone adds a "field" without meaning to, the grammar weakens by one step.
There is a deeper point underneath this, which is that data models encode what their builders consider real. A schema that allows Position without requiring Interest has decided Interest is optional; a schema that treats Commitment as a free-text field has decided Commitment is not a first-class object. These are not technical oversights. They are implicit claims about the world. We would like our implicit claims to at least be visible.