#ifndef DTOB_JSON_H
#define DTOB_JSON_H

#include "dtob.h"

/*
 * JSON convention codes — suggested assignments, not reserved.
 * Users may freely assign codes 16+ to their own types.
 *
 * Codes 16-19: common JSON primitives
 */
#define JSON_CODE_STRING      16   /* string value  */
#define JSON_CODE_TRUE        17   /* boolean true  */
#define JSON_CODE_FALSE       18   /* boolean false */
#define JSON_CODE_NULL        19   /* null          */

/* Convention AST types (extend DtobType) */
#define JSON_STRING  (DTOB_CUSTOM + 1)
#define JSON_TRUE    (DTOB_CUSTOM + 2)
#define JSON_FALSE   (DTOB_CUSTOM + 3)
#define JSON_NULL    (DTOB_CUSTOM + 4)

/* Convention AST constructors */
DtobValue  *json_string(const char *str, size_t len);
DtobValue  *json_true(void);
DtobValue  *json_false(void);
DtobValue  *json_null(void);

#endif
