syntax = "proto3"; package github.semantic; import "types.proto"; option java_package = "com.github.semantic.json"; option go_package = "github.com/semantic/json;json"; message JSONTerm { JSONSyntax syntax = 1; } message JSONSyntax { oneof syntax { Null null = 1; Array array = 2; Boolean boolean = 3; Hash hash = 4; Float float = 5; KeyValue keyValue = 6; TextElement textElement = 7; Error error = 8; } } message Null { } message Array { repeated JSONTerm arrayElements = 1; } message Boolean { bool booleanContent = 1; } message Hash { repeated JSONTerm hashElements = 1; } message Float { string floatContent = 1; } message KeyValue { JSONTerm key = 1; JSONTerm value = 2; } message TextElement { string textElementContent = 1; } message Error { repeated ErrorSite errorCallStack = 1; repeated string errorExpected = 2; string errorActual = 3; repeated JSONTerm errorChildren = 4; }