{
  "INTERNAL-ERROR": "internal error {error}",

  "SYNTAX-ERROR-WITH-EXPECTED": "Expected {expectedDescription} but {foundDescription} found.",
  "SYNTAX-ERROR-WITHOUT-EXPECTED": "{message}",

  "INVALID-ADAPTER": "adapter {type} not registered",
  "INCOMPATIBLE-ADAPTER": "adapter {type} incompatible with juttle {apiVersion} (wanted {adapterJuttleVersion})",
  "UNSUPPORTED-ADAPTER-METHOD": "adapter {type} does not implement {method}",
  "GROUP-BY-UNDEFINED": "group by undefined field \"{field}\"",
  "BUFFER-LIMIT-EXCEEDED": "{buffer} limit of {limit} exceeded, dropping points",
  "POINTS-ARRIVED-LATE": "late arriving point(s) dropped by {proc}",
  "POINTS-OUT-OF-ORDER": "out-of-order point(s) dropped by {proc}",
  "TIME-OUT-OF-ORDER": "out-of-order assignment of time {badTime} after {goodTime}, point(s) dropped",
  "TOO-MANY-LOGS-WARNING": "too many logs from {host}, throttling",
  "POINT-MISSING-TIME": "point is missing a time in {field}",
  "TIMELESS-POINTS": "encountered point(s) without the time field",
  "TYPE-ERROR": "{message}",
  "NO-FREE-TEXT": "Free text search is not implemented in this context.",
  "ADAPTER-UNSUPPORTED-FILTER": "{filter} is not supported by {proc}.",
  "ADAPTER-UNSUPPORTED-TIME-OPTION": "Unsupported value for {option} option: {message}",
  "FREE-TEXT-STOCHASTIC": "Free text search is not implemented for stochastic adapter.",
  "INVALID-TYPE": "content-type must be set to: {{info.types}}",
  "INVALID-HTTP-METHOD": "endpoint only allows these http methods: {{info.types}}",
  "INVALID-DATA": "Invalid {type} data: {detail}",
  "INVALID-JSON-TIME": "the time field must contain a number or a string representing time.",
  "FIELD-NOT-FOUND": "field \"{field}\" does not exist",
  "DATE-PARSE-ERROR": "Unable to parse date: \"{s}\"",
  "INVALID-TIME-ERROR": "the time field must contain a number or a string representing time. Instead it contains \"{time}\".",
  "OVERWRITING-TIME": "Warning: overwriting value of time field with \"{field}\" field",

  "INTEGER-REQUIRED": "{argument} for {proc} must be an integer",
  "BATCH-INTERVAL-ERROR": "batch interval must be a positive number or duration.",
  "BATCH-INTERVAL-EVERY-ERROR": "Specify either batch -every or batch :interval:",
  "ON-EVERY-ERROR": "{proc} -on cannot be greater than -every",
  "ON-NO-EVERY-ERROR": "{proc} -on requires -every",
  "REDUCE-EVERY-ERROR": "reduce -every must be a positive duration.",
  "REDUCE-DELTA-ERROR": "delta cannot be used with reduce (use reduce last | put delta=delta())",
  "LAST-FROM-TO-ERROR": "-last option should not be combined with -from or -to",
  "OPTION-FROM-TO-ERROR": "-{option} option should not be combined with -from, -to, or -last",
  "MISSING-TIME-RANGE": "One of -from, -to, or -last must be specified to define a query time range",
  "FORGET-BY-ERROR": "-forget option only applies when using \"by\"",
  "FORGET-RESET-ERROR": "cannot -forget when -reset false",
  "FROM-OVER-ERROR": "{proc} -from only when -over is specified",
  "FROM-TO-OVER-ERROR": "{proc} -from/-to only when -over is specified",
  "TO-BEFORE-FROM-MOMENT-ERROR": "-from must be before -to",
  "PACE-EVERY-X-ERROR": "Specify either output period with -every or time speedup with -x",
  "METRICS-OR-EVENTS": "-type must be \"metric\" or \"event\"",
  "EMIT-POINTS-ARRAY-ERROR": "emit -points wants an array of points",
  "EMIT-MIXED-POINTS-ERROR": "emit -points must all have timestamps or have no timestamps",
  "NUMBER-ERROR": "-{option} wants a number, got {value}",
  "DURATION-ERROR": "-{option} wants a duration, got {value}",
  "MOMENT-ERROR": "-{option} wants a moment, got {value}",
  "DURATION-OR-MOMENT-ERROR": "-{option} wants a duration or moment, got {value}",
  "INVALID-OFFSET": "a duration is required for the offset.",
  "INVALID-SINK-OPTIONS": "view called with non-object argument to -o/-options",
  "JOIN-INPUTNUM-ERROR": "-{option} must be an input number (1, 2, ...).",
  "JOIN-ALL-TABLES-ERROR": "at least one input must not be a table",
  "JOIN-TABLE-OUTER-ERROR": "-table and -outer cannot be specified for the same input",
  "JOIN-TABLE-BATCHED-ERROR": "-table input cannot be batched.",
  "MISSING-OPTION": "missing {proc} required option {option}.",
  "UNKNOWN-OPTION": "unknown {proc} option {option}.",
  "INCOMPATIBLE-OPTION": "-{option} option should not be combined with -{other}",
  "JOIN-ZIP-ERROR": "-zip must be either true or a Duration.",
  "JOIN-ZIP-NEAREST-ERROR": "You cannot specify both -zip and -nearest.",
  "BAD-NESTED-OPTION": "invalid nested view option {name}",
  "UNKNOWN-SOURCE": "Unknown source: {source}",
  "UNKNOWN-DOS-ROUTER": "Unknown DOS router: {dos_router}",
  "INVALID-MARKOV-ITEMS": "Markov items must all be numbers or all be strings",
  "RUNAWAY-PROGRAM": "Not starting program as it would run forever with no output. {extra}",
  "SPLIT-NAME": "Cannot split on name",
  "ON-NO-EVERY": "Cannot set -on without -every",
  "CUSTOM-ERROR": "{message}",
  "PROGRAM-WITHOUT-FLOWGRAPH": "Cannot run a program without a flowgraph.",
  "SUB-WITHOUT-FLOWGRAPH": "A sub must contain a flowgraph.",
  "PROC-CANNOT-START-FLOWGRAPH": "{proc} cannot be used at the start of a flowgraph.",
  "PROC-MUST-START-FLOWGRAPH": "{proc} can only be used at the start of a flowgraph.",
  "PROC-CANNOT-END-FLOWGRAPH": "{proc} cannot be used at the end of a flowgraph.",
  "PROC-MUST-END-FLOWGRAPH": "{proc} can only be used at the end of a flowgraph.",
  "WRONG-PROC-TYPE": "{proc} is a not a {type} proc.",
  "CANNOT-USE-AS-VARIABLE": "Cannot use a {thing} as a variable",
  "CANNOT-USE-AS-FUNCTION-OR-REDUCER": "Cannot use an expression as a function or a reducer",
  "MISSING-FUNCTION-IN-REDUCER": "missing {function} in reducer {reducer}",
  "NON-TOPLEVEL-EXPORT": "Cannot export from within a {entity}",
  "NON-TOPLEVEL-IMPORT": "Cannot import from within a {entity}",
  "CYCLIC-IMPORT": "Import cycle detected ({path})",
  "REDUCER-TOPLEVEL-STATEMENT": "Cannot use {thing} at the top level of a reducer.",
  "NOT-EXPORTED": "'{name}' is not exported by module {module}",
  "WRONG-ARG-COUNT-SINGULAR": "{type} {name} expects 1 argument but was called with {actual_count}",
  "WRONG-ARG-COUNT-PLURAL": "{type} {name} expects {expected_count} arguments but was called with {actual_count}",
  "WRONG-ARG-COUNT-RANGE": "{type} {name} expects {min_count} to {max_count} arguments but was called with {actual_count}",
  "UNDEFINED-VARIABLE": "undefined variable: {name}",
  "VARIABLE-NOT-ASSIGNABLE": "Variable \"{name}\" cannot be assigned to",
  "VARIABLE-NOT-MODIFIABLE": "Variable \"{name}\" cannot be modified",
  "INVALID-REDUCER-CALL": "invalid call to reducer {name}",
  "REDUCER-METHOD-ARGS": "Reducer method {name}() may not take arguments",
  "NOT-A-FUNCTION-OR-REDUCER": "not a function or reducer: {name}",
  "NO-SUCH-SUB": "no such sub: {name}",
  "NOT-A-SUB": "not a sub: {name}",
  "INVALID-POSTFIX-USE": "Invalid use of postfix operator {operator} with variable \"{variable}\"",
  "INVALID-POSTFIX-LHS": "Invalid left-hand side expression in postfix operation",
  "INVALID-FIELD-REFERENCE": "invalid field reference",
  "INVALID-PREFIX-USE": "Invalid use of prefix operator {operator} with variable \"{variable}\"",
  "PARAM-ORDER": "A required parameter cannot follow an optional parameter.",
  "BAD-INPUT-OPTION": "input {input} option {option} cannot be evaluated",
  "UNINITIALIZED-CONST": "Const \"{name}\" must be initialized",
  "PROC-NEEDS-ARG": "The {name} processor needs an argument",
  "UNDEFINED": "{name} is not defined",
  "REDEFINED": "redefined {type}: {name}",
  "PROC-AFTER-SINK": "{proc} may not come after a sink",
  "PROC-BEFORE-SOURCE": "{proc} may not come before a source",
  "SUB-INVALID-ARG": "Subgraph {sub} called with invalid argument {arg}",
  "SUB-MISSING-ARG": "Subgraph {sub} called without argument {arg}",
  "INVALID-OPERAND-TYPE": "The \"{operator}\" operator: Invalid operand type ({type}).",
  "INVALID-TERM-TYPE": "Invalid term type ({type}).",
  "INVALID-EXPRESSION-FILTER-TERM": "Invalid filter term. Valid forms are: {forms}.",
  "IMPORT-INTERPOLATION": "Cannot use interpolation in imported module name.",
  "MODULE-NOT-FOUND": "could not find module \"{module}\"",
  "FIELD-NOT-STRING": "field {field} is not a string",
  "INVALID-OPTION-VALUE": "Invalid {option} option value, must be one of the following: {supported}",
  "INVALID-VIEW": "program refers to invalid client view \"{view}\"",
  "OPTION-SHOULD-BE-POSITIVE-INTEGER": "option {option} should be a positive integer",
  "OPTION-VALUE-EXCEEDED": "option {option} exceeded limit of {value}{extra}",
  "INVALID-OPTION-COMBINATION": "option {option} can only be used with {rule}",
  "FILTER-FEATURE-NOT-SUPPORTED": "Filters do not support {feature} in this context.",
  "HTTP-ERROR": "HTTP request failed with {status}: {message}",
  "CANNOT-FILTER-ON-TIME": "Cannot filter on \"time\" in read. Use -to, -from, or -last instead.",
  "INDEX-OUT-OF-BOUNDS": "Index out of bounds: {index}."
}
