private Decl decl(String name, Object value) {
      Type type;
      var builder = Constant.newBuilder();
      if (value instanceof String s) {
        builder.setStringValue(s);
        type = Decls.String;
      } else if (value instanceof Boolean b) {
        builder.setBoolValue(b);
        type = Decls.Bool;
      } else if (value instanceof Long || value instanceof Integer) {
        builder.setInt64Value(((Number) value).longValue());
        type = Decls.Int;
      } else if (value instanceof Double || value instanceof Float) {
        builder.setDoubleValue(((Number) value).doubleValue());
        type = Decls.Double;
      } else if (value == null) {
        builder.setNullValue(NullValue.NULL_VALUE);
        type = Decls.Null;
      } else {
        throw new IllegalArgumentException(
          "Unrecognized constant type: " + value + " (" + value.getClass().getName() + ")");
      }
      return Decls.newConst("args." + name, type, builder.build());
    }
Root context available everywhere in a planetiler schema config.
<p>
Holds argument values parsed from the schema config and command-line args.
planetiler-custommap/src/main/java/com/onthegomap/planetiler/custommap/Contexts.java