This appendix catalogs all 76 built-in protocols shipped with panproto. Each entry lists the protocol’s native format or file extension, its theory group assignment (A through E), and the parse and emit function names. The theory group determines which categorical structure underlies the protocol’s schema representation and governs which cross-format conversions are lossless.
Serialization protocols
| Protobuf |
.proto |
C |
parse_protobuf |
emit_protobuf |
| Avro |
.avsc |
C |
parse_avro |
emit_avro |
| Thrift |
.thrift |
C |
parse_thrift |
emit_thrift |
| Cap’n Proto |
.capnp |
C |
parse_capnproto |
emit_capnproto |
| FlatBuffers |
.fbs |
C |
parse_flatbuffers |
emit_flatbuffers |
| ASN.1 |
.asn1 |
C |
parse_asn1 |
emit_asn1 |
| Bond |
.bond |
C |
parse_bond |
emit_bond |
| MsgPack Schema |
JSON |
A |
parse_msgpack_schema |
emit_msgpack_schema |
Data schema protocols
| JSON Schema |
JSON |
A |
parse_json_schema |
emit_json_schema |
| XML/XSD |
.xsd |
E |
parse_xsd |
emit_xsd |
| CSV/Table Schema |
JSON |
B |
parse_table_schema |
emit_table_schema |
| YAML Schema |
YAML |
A |
parse_yaml_schema |
emit_yaml_schema |
| TOML Schema |
JSON |
A |
parse_toml_schema |
emit_toml_schema |
| CDDL |
.cddl |
A |
parse_cddl |
emit_cddl |
| INI Schema |
JSON |
A |
parse_ini_schema |
emit_ini_schema |
| BSON Schema |
JSON |
A |
parse_bson_schema |
emit_bson_schema |
API protocols
| GraphQL |
.graphql |
D |
parse_graphql |
emit_graphql |
| OpenAPI |
YAML/JSON |
A |
parse_openapi |
emit_openapi |
| AsyncAPI |
YAML/JSON |
A |
parse_asyncapi |
emit_asyncapi |
| RAML |
.raml |
A |
parse_raml |
emit_raml |
| JSON:API |
JSON |
A |
parse_jsonapi |
emit_jsonapi |
Database protocols
| SQL |
.sql |
B |
parse_sql |
emit_sql |
| MongoDB |
JSON |
A |
parse_mongodb |
emit_mongodb |
| Cassandra |
.cql |
B |
parse_cassandra |
emit_cassandra |
| DynamoDB |
JSON |
B |
parse_dynamodb |
emit_dynamodb |
| Neo4j |
Cypher |
E |
parse_neo4j |
emit_neo4j |
| Redis |
FT.CREATE |
C |
parse_redis |
emit_redis |
Type system protocols
| TypeScript |
.d.ts |
D |
parse_typescript |
emit_typescript |
| Python (Pydantic) |
Pydantic |
D |
parse_pydantic |
emit_pydantic |
| Rust Serde |
.rs |
D |
parse_rust_serde |
emit_rust_serde |
| Java |
.java |
D |
parse_java |
emit_java |
| Go |
.go |
D |
parse_go |
emit_go |
| Swift |
.swift |
D |
parse_swift |
emit_swift |
| Kotlin |
.kt |
D |
parse_kotlin |
emit_kotlin |
| C# |
.cs |
D |
parse_csharp |
emit_csharp |
Web and document protocols
| ATProto |
JSON |
A |
parse_atproto |
emit_atproto |
| HTML |
JSON |
E |
parse_html |
emit_html |
| CSS |
JSON |
E |
parse_css |
emit_css |
| DOCX |
JSON |
E |
parse_docx |
emit_docx |
| ODF |
JSON |
E |
parse_odf |
emit_odf |
| Markdown |
JSON |
A |
parse_markdown |
emit_markdown |
| JSX/React |
TSX |
D |
parse_jsx |
emit_jsx |
| Vue |
.vue |
D |
parse_vue |
emit_vue |
| Svelte |
.svelte |
D |
parse_svelte |
emit_svelte |
| XML/XSD |
.xsd |
E |
parse_xsd |
emit_xsd |
Data science protocols
| Parquet |
JSON |
B |
parse_parquet |
emit_parquet |
| Arrow |
JSON |
B |
parse_arrow |
emit_arrow |
| DataFrame |
JSON |
B |
parse_dataframe |
emit_dataframe |
Domain protocols
| GeoJSON |
JSON |
A |
parse_geojson |
emit_geojson |
| FHIR |
JSON |
A |
parse_fhir |
emit_fhir |
| RSS/Atom |
JSON |
A |
parse_rss_atom |
emit_rss_atom |
| vCard/iCal |
JSON |
A |
parse_vcard_ical |
emit_vcard_ical |
| EDI X12 |
JSON |
B |
parse_edi_x12 |
emit_edi_x12 |
| SWIFT MT |
JSON |
B |
parse_swift_mt |
emit_swift_mt |
Config protocols
| HCL |
.tf |
C |
parse_hcl |
emit_hcl |
| K8s CRD |
YAML |
A |
parse_k8s_crd |
emit_k8s_crd |
| CloudFormation |
JSON |
A |
parse_cloudformation |
emit_cloudformation |
| Ansible |
YAML |
A |
parse_ansible |
emit_ansible |
Theory groups
Each protocol is assigned to one of six theory groups. The group determines the categorical theory used internally to represent the protocol’s schema and governs how models migrate between protocols.
| A |
colimit(ThGraph, ThConstraint, ThMulti) + ThWType |
Constrained multigraph with W-types. Handles hierarchical, constraint-bearing schemas in JSON or YAML surface syntax. The most general setting. |
| B |
colimit(ThHypergraph, ThConstraint) + ThFunctor |
Hypergraph with functorial structure. Tabular and relational schemas where rows, columns, and foreign-key relationships are first-class. |
| C |
colimit(ThSimpleGraph, ThConstraint) + ThFlat |
Simple graph with flat structure. Binary wire formats and IDL-defined schemas lacking recursive or dependent types. |
| D |
colimit(ThGraph, ThConstraint, ThMulti, ThInterface) + ThWType |
Typed graph with interfaces and W-types. Host-language type systems supporting interfaces, generics, and recursive types. |
| E |
colimit(ThGraph, ThConstraint, ThMulti) + colimit(ThWType, ThMeta) |
Multigraph with W-types and meta-level structure. Document and markup formats where presentation, content, and schema interleave. |
The theory group reflects the expressive requirements of a schema language, not its surface syntax. Two protocols with different surfaces may share a theory group if they require identical categorical structure.