Let $\mathcal{M}$ be an infinite model of a first-order language, and for each $n$, let $\mathcal{B}_n$ be the algebra of definable sets of $n$-tuples from $|\mathcal{M}|$.

Given $\{\mathcal{B}_n\mid _{n\in\mathbb{N}}\}$ (and, obviously, $|\mathcal{M}|$, is it possible to describe explicitly some $\mathcal{M}'$ whose definable sets are $\{\mathcal{B}_n\}$? (I think the question makes the most sense assuming that the language itself is unknown, so I'm asking if there's a natural way to invent a language and a model which gives the chosen definable sets. Obviously there is such a model, namely the original one, but I'm open minded about what it would mean to construct $\mathcal{M}'$ "explicitly".)

How well do the definable sets "pin down" the model? Need two models with the same definable sets in the same language be elementarily equivalent? Can anything be said about the relationship between two different models of different languages, but with the same definable sets?

There are some obvious restrictions on the $\mathcal{B}_n$: $\mathcal{B}_n\times\mathcal{B}_m\subseteq\mathcal{B}_{n+ m}$, each $\mathcal{B}_n$ is a Boolean algebra, $\mathcal{B}_m$ contains all projections from $\mathcal{B}_{m+n}$. Are there any others?