You all have your bases covered, from what I see regarding the usual problems. The boards we tend to find aren’t made with as much processing power in mind as your project uses. Storing everything as JSON is not gonna fly on an 8-bit board. But it conveniently avoids silly things such as, “is this UID of all zeroes in the authorized array,” which is exactly what C initializes an array to: all zeroes. Also, doing string comparisons avoids coercion into booleans.
Disclaimer: I am not an expert.