Some of the complexity from our use of AJV (sandboxed page (html, js), proxy object) come because it uses the Function constructor. Since the background page has a CSP that does not include unsafe-eval, this is blocked by default.
I am pretty sure this was ruled out previously, but just in case there's been some update, consider the options mentioned in ajv-validator/ajv#406.