diff --git a/CMakeLists.txt b/CMakeLists.txt
index 079c16d47dca1b72b91c6397e9e82066c4fc00f6..c8ebdffa0be2827abc5a497f82b1a071389f7d2a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,7 +34,7 @@ if(USGSCSM_EXTERNAL_DEPS)
 
   # Eigen
   find_package(Eigen3 3.3 REQUIRED NO_MODULE)
-   
+
   # ALE
   find_package(ale REQUIRED)
   set(ALE_TARGET ale::ale)
@@ -46,12 +46,11 @@ else()
   set(CSM_LIBRARY csmapi)
 
   # Nlohmann JSON
-  set(JSON_BuildTests OFF CACHE INTERNAL "")
-  add_subdirectory(json)
+  # Use the Nlohmann JSON version embedded in ALE
 
   # ALE
   set(ALE_USE_EXTERNAL_EIGEN OFF)
-  set(ALE_USE_EXTERNAL_JSON ON)
+  set(ALE_USE_EXTERNAL_JSON OFF)
   set(ALE_BUILD_LOAD OFF)
   set(ALE_BUILD_TESTS OFF)
   add_subdirectory(ale)
diff --git a/cmake/nlohmann_jsonConfig.cmake b/cmake/nlohmann_jsonConfig.cmake
deleted file mode 100644
index 27b0a864a89356e466d57f57b6a6cd76be2be801..0000000000000000000000000000000000000000
--- a/cmake/nlohmann_jsonConfig.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-include(FindPackageHandleStandardArgs)
-set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE})
-find_package_handle_standard_args(nlohmann_json CONFIG_MODE)
-
-if(NOT TARGET nlohmann_json::nlohmann_json)
-    include("${CMAKE_CURRENT_LIST_DIR}/nlohmann_jsonTargets.cmake")
-    if((NOT TARGET nlohmann_json) AND
-       (NOT nlohmann_json_FIND_VERSION OR
-        nlohmann_json_FIND_VERSION VERSION_LESS 3.2.0))
-        add_library(nlohmann_json INTERFACE IMPORTED)
-        set_target_properties(nlohmann_json PROPERTIES
-            INTERFACE_LINK_LIBRARIES nlohmann_json::nlohmann_json
-        )
-    endif()
-endif()
diff --git a/cmake/nlohmann_jsonTargets.cmake b/cmake/nlohmann_jsonTargets.cmake
deleted file mode 100644
index 0ae4cac305d7a07c0e84c9db2c34f48e75e30a2a..0000000000000000000000000000000000000000
--- a/cmake/nlohmann_jsonTargets.cmake
+++ /dev/null
@@ -1,100 +0,0 @@
-# Generated by CMake
-
-if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
-   message(FATAL_ERROR "CMake >= 2.6.0 required")
-endif()
-cmake_policy(PUSH)
-cmake_policy(VERSION 2.6...3.19)
-#----------------------------------------------------------------
-# Generated CMake target import file.
-#----------------------------------------------------------------
-
-# Commands may need to know the format version.
-set(CMAKE_IMPORT_FILE_VERSION 1)
-
-# Protect against multiple inclusion, which would fail when already imported targets are added once more.
-set(_targetsDefined)
-set(_targetsNotDefined)
-set(_expectedTargets)
-foreach(_expectedTarget nlohmann_json::nlohmann_json)
-  list(APPEND _expectedTargets ${_expectedTarget})
-  if(NOT TARGET ${_expectedTarget})
-    list(APPEND _targetsNotDefined ${_expectedTarget})
-  endif()
-  if(TARGET ${_expectedTarget})
-    list(APPEND _targetsDefined ${_expectedTarget})
-  endif()
-endforeach()
-if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
-  unset(_targetsDefined)
-  unset(_targetsNotDefined)
-  unset(_expectedTargets)
-  set(CMAKE_IMPORT_FILE_VERSION)
-  cmake_policy(POP)
-  return()
-endif()
-if(NOT "${_targetsDefined}" STREQUAL "")
-  message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
-endif()
-unset(_targetsDefined)
-unset(_targetsNotDefined)
-unset(_expectedTargets)
-
-
-# Compute the installation prefix relative to this file.
-get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
-get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
-get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
-get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
-if(_IMPORT_PREFIX STREQUAL "/")
-  set(_IMPORT_PREFIX "")
-endif()
-
-# Create imported target nlohmann_json::nlohmann_json
-add_library(nlohmann_json::nlohmann_json INTERFACE IMPORTED)
-
-set_target_properties(nlohmann_json::nlohmann_json PROPERTIES
-  INTERFACE_COMPILE_DEFINITIONS "JSON_USE_IMPLICIT_CONVERSIONS=\$<BOOL:ON>;JSON_DIAGNOSTICS=\$<BOOL:OFF>"
-  INTERFACE_COMPILE_FEATURES "cxx_std_11"
-  #INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
-)
-
-if(CMAKE_VERSION VERSION_LESS 3.0.0)
-  message(FATAL_ERROR "This file relies on consumers using CMake 3.0.0 or greater.")
-endif()
-
-# Load information for each installed configuration.
-get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-file(GLOB CONFIG_FILES "${_DIR}/nlohmann_jsonTargets-*.cmake")
-foreach(f ${CONFIG_FILES})
-  include(${f})
-endforeach()
-
-# Cleanup temporary variables.
-set(_IMPORT_PREFIX)
-
-# Loop over all imported files and verify that they actually exist
-foreach(target ${_IMPORT_CHECK_TARGETS} )
-  foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
-    if(NOT EXISTS "${file}" )
-      message(FATAL_ERROR "The imported target \"${target}\" references the file
-   \"${file}\"
-but this file does not exist.  Possible reasons include:
-* The file was deleted, renamed, or moved to another location.
-* An install or uninstall procedure did not complete successfully.
-* The installation package was faulty and contained
-   \"${CMAKE_CURRENT_LIST_FILE}\"
-but not all the files it references.
-")
-    endif()
-  endforeach()
-  unset(_IMPORT_CHECK_FILES_FOR_${target})
-endforeach()
-unset(_IMPORT_CHECK_TARGETS)
-
-# This file does not depend on other imported targets which have
-# been exported from the same project but in a separate export set.
-
-# Commands beyond this point should not need to know the version.
-set(CMAKE_IMPORT_FILE_VERSION)
-cmake_policy(POP)
diff --git a/environment.yml b/environment.yml
index 680db84d5425590655992b7a964ef0d20335de6c..c93069f2231002ee084d889735428226ee7a6be0 100644
--- a/environment.yml
+++ b/environment.yml
@@ -7,5 +7,5 @@ dependencies:
   - cmake>=3.15
   - ale
   - csm
-  - nlohmann_json
+  - nlohmann_json<=3.10.4
   - eigen