Domain-specific languages represented in data serialization formats (such as Javascript Object Notation or JSON) are an increasingly common means to control numerous systems.These range from database queries to application configuration, narrative generation, Twitter bots, data visualization, and many other areas.These languages allow potentially unsophisticated human users to concisely specify their intent through logic and notation that is relevant to task domain.Further, they provide a means for computational agents to easily manipulate that form, allowing for powerful recommendation engines and systems of automated analyses.In this thesis, we consider how end-user agency might be enhanced and maintained through the design of tools that support these domain-specific languages, as well as through the study of the design of the languages themselves.In support of this goal, we conducted four interconnected projects which variously study how JSON-based DSLs are designed, how abstraction can be integrated into those languages, how interfaces can be designed to specifically facilitate their manipulation, as well as how those programs might be automatically validated.Through these projects, we demonstrate that giving primacy to these textual interfaces as design elements can be valuable for end users.We find that this style of interventions are useful for helping end users learn, use, and re-use programs written in these languages.We primarily consider languages focused on data visualization tasks, as there has been substantial work in the visualization research community on this form of interface—although the lessons learned could be applied to any relevant domain.